﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Domain.MainModule.Entities;

namespace Application.MainModule.CustomerCompaniesManagement
{
    public interface ICustomerCompanyManagementService
    {
        /// <summary>
        /// Add new customerCompany
        /// </summary>
        /// <param name="customerCompany">CustomerCompany to be added</param>
        void AddCustomerCompany(CustomerCompany customerCompany);

        /// <summary>
        /// Change existing customerCompany
        /// </summary>
        /// <param name="customerCompany">Existing customerCompany to modify</param>
        void ChangeCustomerCompany(CustomerCompany customerCompany);

        /// <summary>
        /// Remove existing customerCompany
        /// </summary>
        /// <param name="customerCompany">CustomerCompany to remove</param>
        void RemoveCustomerCompany(CustomerCompany customerCompany);

        /// <summary>
        /// Find an customerCompany using MembershipUserId
        /// </summary>
        /// <param name="userId">MembershipUserId</param>
        /// <returns>An customerCompany</returns>
        CustomerCompany FindCustomerCompanyByMembershipUserId(Guid userId);

        CustomerCompany FindCustomerCompanyById(Guid userId);

        List<CustomerCompany> FindPagedCustomerCompanies(int pageIndex, int pageCount);

    }
}
